LCML/Системные
env
env - Получение информации об окружении приложения
Метод
Part: LCML/Системные
Формат
env
Результат
Возвращает map[string]string, содержащую ключевые параметры окружения приложения:
env — название среды выполнения (например, development, production).
cluster — информация о текущем кластере.
dc — идентификатор или название дата-центра. Пример использования
{{$envData := env}}
gethostbyname
gethostbyname - Функция gethostbyname возвращает IP-адрес хоста по его имени. Если хост имеет несколько IP-адресов, выбирается случайный из них.
Метод
Part: LCML/Системные
Формат
gethostbyname name
- name: строка с именем хоста. Результат
Возвращает строку с IP-адресом хоста.
Пример использования
{{ ip := gethostbyname “example.com” }}
help
help - Получение FuncMap со всеми доступными функциями из app
Метод
Part: LCML/Системные
Формат
help
Результат
Возвращает map[string]any
Пример использования
{{$availableFunctions := help}}
iserror
iserror - Проверка результата на наличие ошибки
Метод
Part: LCML/Системные
Функция isError проверяет, содержит ли переданный результат слово “error”. Используется для обработки выводов функций и упрощения логики определения ошибок.
Формат:
iserror output
- output — результат выполнения другой функции или любое значение, которое нужно проверить. Результат:
Возвращает true, если строковое представление output содержит слово “error”. В противном случае возвращает false.
Пример использования:
{{ if $ticketObj }}
{{ if eq (iserror $ticketObj.Data) false }}
{{ tohtml (curl "GET" $acUrl "" nil nil) }}
{{ else }}
{{ tohtml (curl "GET" $afccUrl "" nil nil) }}
{{ end }}
{{ end }}
limiter
limiter - Ограничение частоты запросов по IP
Метод
Part: LCML/Системные
Функция limiter проверяет, может ли клиент с определённым IP-адресом отправить повторный запрос, ограничивая частоту обращений. Механизм работы основан на кэшировании времени запроса и ограничении по интервалу с последнего запроса.
Формат:
limiter ip
- ip — IP-адрес клиента, по которому производится проверка. Результат:
Возвращает true, если клиенту разрешено отправить запрос. Возвращает false, если клиент должен подождать перед следующим запросом.
Пример использования:
{{ if limiter "192.168.0.1" }}
Запрос принят
{{ else }}
Слишком много запросов. Попробуйте позже.
{{ end }}
parseparam
parseparam - Обработка вложенных операций
Метод
Part: LCML/Системные
Функция parseparam используется для обработки строк, содержащих вложенные переменные в формате %переменная%. Она заменяет такие конструкции их значениями, взятыми из конфигурации и данных текущего контекста.
Формат:
parseparam variable configuration data outputtype
- variable — строка, содержащая текст с вложенными переменными (например, “url”).
- configuration — объект конфигурации, содержащий определения переменных и их источников.
- data — объект данных, используемый для вычисления значений переменных.
- outputtype — тип вывода: (пустая строка) — текстовый формат вывода, “html” — HTML-вывод, чтобы избежать экранирования HTML. Результат:
Возвращает строку, где вложенные переменные ( %переменная% ) заменены их значениями, вычисленными на основе конфигурации и данных.
Пример использования:
Пример конфигурации:
{
"id": {"type": "text", "source": "123-123-123"},
"url": {"type": "text", "source": "/path=%id%"}
}
Шаблон:
{{$parsedUrl := parseparam "url" $.Configuration $data ""}}
Ссылка: {{$parsedUrl}}
Результат:
<p>Ссылка: /path=123-123-123</p>
Пример с использованием данных:
Допустим, данные контекста ( $data ) содержат следующую структуру:
{
"user": {"id": "456-456-456"}
}
Конфигурация:
{
"id": {"type": "text", "source": "%user.id%"},
"url": {"type": "text", "source": "/profile=%id%"}
}
Шаблон:
{{$parsedUrl := parseparam "url" $.Configuration $data ""}}
Ссылка на профиль: {{$parsedUrl}}
Результат:
<p>Ссылка на профиль: /profile=456-456-456</p>
separator
separator - Возвращает разделитель пути для текущей операционной системы.
Метод
Part: LCML/Системные
Функция separator возвращает разделитель пути для текущей операционной системы.
Формат:
separator
Результат:
- / — для Linux и macOS.
- \ — для Windows.
Пример использования:
{{$sep := separator}} >> /